package com.hspedu.set_;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

/**
 * @Author Stringzhua
 * @Date 2024/3/11 20:04
 * description:
 */
@SuppressWarnings("all")
public class SetMethod {
    public static void main(String[] args) {
        //HashSet()解读
        //1.以Set 接口的实现类 HashSet 来讲解Set接口的方法
        //2.set 接口的实现类的对象(Set接口对象),不能存放重复的元素,可以添加一个null
        //3.set 接口对象存放数据是无序的(即添加顺序和取出的顺序不一致)
        //4.注意:取出的顺序虽然不是添加的顺序,但是它是固定的
        Set set = new HashSet();
        set.add("john");
        set.add("lucy");
        set.add("john");//重复数据
        set.add("jack");
        set.add("hsp");
        set.add("marry");
        set.add(null);//
        set.add(null);//再次添加null
        for (int i = 0; i < 10; i++) {
            System.out.println("set = " + set);
        }
        System.out.println("set = " + set);


        //遍历:
        // 方式1:使用迭代器
        System.out.println("===使用迭代器===");
        Iterator iterator = set.iterator();
        while (iterator.hasNext()) {
            Object next =  iterator.next();
            System.out.println("next = " + next);
        }

        //删除方法
        set.remove(null);

        //方式2:使用增强for循环
        System.out.println("===使用增强for循环===");
        for (Object o :set) {
            System.out.println("o = " + o);
        }

        //set接口对象不能通过索引来获取
//        for (int i = 0; i < set.size(); i++) {
//            set.get
//        }
    }
}
